package com.ecommerce.dal.service;

import java.util.List;

import com.ecommerce.dal.entity.User;

public interface IUserManagerService {
	/**
	 * @param userId
	 * @return User Object
	 */
	public User retrieveUser(long userId);
	/**
	 * @param String username
	 * @return User Object
	 */
	public User retrieveUser(String username);
	/**
	 * @param String userName
	 * @param String password
	 * @return User Object
	 */
	public User retrieveUser(String userName , String password);
	/**
	 * @param String userName
	 * @return true if userName already exists, false otherwise
	 */
	public boolean checkUserIfExists(String userName);
	/**
	 * @param String userId
	 * @return true if userId already exists , false otherwise
	 */
	public boolean checkUserIfExists(long userId);
	/**
	 * @param User Object
	 */
	public void saveUser(User user);
	/**
	 * @return List of User Objects
	 */
	public List<User> retrieveAllUsers();
	/**
	 * @return List of all users who use Newsletters
	 */
	public List<User> retrieveNewsletterUsers();
	
	
	void updateUser(User user);
	void deleteUser(User user);
	
//	void save(User user);
//	void update(User user);
//	void delete(User user);
//	User findByUserId(long userId);
//	User findByUserUsername(String username);
//	User findByUserVerified(String username, String password);
}
